package pe.gob.osce.sirenas.dao.convert;


import java.util.ArrayList;
import java.util.List;

import pe.gob.osce.sirenas.model.AuditoriaDTO;
import pe.gob.osce.sirenas.model.BusquedaFichaDTO;
import pe.gob.osce.sirenas.model.FichaArbitralDTO;
import pe.gob.osce.sirenas.model.jpa.Acreditacion;
import pe.gob.osce.sirenas.model.jpa.FichaArbitral;
import pe.gob.osce.sirenas.model.jpa.Persona;

public class FichaArbitralConvert {

	public FichaArbitralConvert(){}
	
	public static List<BusquedaFichaDTO> createListaBusquedaFichaDTO(List<FichaArbitral> listaFichas){
		List<BusquedaFichaDTO> listaBusquedaFicha=new ArrayList<BusquedaFichaDTO>();
		BusquedaFichaDTO fichaDTO= new BusquedaFichaDTO();
		for (FichaArbitral fichaArbitral : listaFichas) {
			fichaDTO= new BusquedaFichaDTO();
			fichaDTO.setIdFicha(fichaArbitral.getIdFicha());			
			fichaDTO.setNumFicha(fichaArbitral.getNumFicha());		
			fichaDTO.setTipoFicha(fichaArbitral.getTipoFicha());
			fichaDTO.setApMaterno(fichaArbitral.getPersona().getApMaterno() );
			fichaDTO.setApPaterno(fichaArbitral.getPersona().getApPaterno() );
			fichaDTO.setNombres(fichaArbitral.getPersona().getNombres());			
			fichaDTO.setApellidos(fichaArbitral.getPersona().getApPaterno()+" "+fichaArbitral.getPersona().getApMaterno());
			fichaDTO.setNombreCompleto(fichaArbitral.getPersona().getNombres()+" "+fichaArbitral.getPersona().getApPaterno()+" "+fichaArbitral.getPersona().getApMaterno());
			fichaDTO.setIndTipoDocumento(fichaArbitral.getPersona().getIndTipoDocumento().longValue());
			fichaDTO.setNumDocumento(fichaArbitral.getPersona().getNumDocumento());
			fichaDTO.setNumRuc(fichaArbitral.getPersona().getNumRuc());
			fichaDTO.setIdEstadoFicha(fichaArbitral.getIdEstadoFicha().longValue());
			fichaDTO.setIdPersona(fichaArbitral.getPersona().getIdPersona() );
			listaBusquedaFicha.add(fichaDTO);
			
		}
		return listaBusquedaFicha;
	}
	
	public static FichaArbitral createJPA(FichaArbitralDTO fichaArbitralDTO,AuditoriaDTO auditoriaDTO)
	{
		FichaArbitral objetoJPA= new FichaArbitral();
		
		objetoJPA.setIdFicha(fichaArbitralDTO.getIdFicha());
		objetoJPA.setNumFicha(fichaArbitralDTO.getNumFicha());
		objetoJPA.setTipoFicha(fichaArbitralDTO.getTipoFicha());
		objetoJPA.setIdEstadoFicha(fichaArbitralDTO.getIdEstadoFicha() );
		objetoJPA.setIndModalidadArbitro(fichaArbitralDTO.getIndModalidadArbitro() );
		objetoJPA.setFechaModalidad(fichaArbitralDTO.getFechaModalidad() );
		objetoJPA.setEstado(fichaArbitralDTO.getEstado());
		objetoJPA.setIdPersona(fichaArbitralDTO.getIdPersona());
		objetoJPA.setAuditoria(AuditoriaConvert.createJPA(auditoriaDTO));

		return objetoJPA;
		
	}
	
	public static FichaArbitralDTO createDTO(FichaArbitral fichaArbitralJPA)
	{
		FichaArbitralDTO objetoDTO= new FichaArbitralDTO();
		
		objetoDTO.setIdFicha(fichaArbitralJPA.getIdFicha());
		String numFicha=(fichaArbitralJPA.getNumFicha()==null)?"":fichaArbitralJPA.getNumFicha();
		objetoDTO.setNumFicha((numFicha.trim().equals("null")?"":numFicha));
		objetoDTO.setTipoFicha(fichaArbitralJPA.getTipoFicha());
		objetoDTO.setIdEstadoFicha(fichaArbitralJPA.getIdEstadoFicha() );
		objetoDTO.setIndModalidadArbitro(fichaArbitralJPA.getIndModalidadArbitro() );
		objetoDTO.setFechaModalidad(fichaArbitralJPA.getFechaModalidad() );	
		objetoDTO.setEstado(fichaArbitralJPA.getEstado());

		//Transformo el JPA de Persona a un DTO
		objetoDTO.setIdPersona(fichaArbitralJPA.getPersona().getIdPersona() );
		objetoDTO.setPersona(PersonaConvert.createDTO(fichaArbitralJPA.getPersona()));	
		objetoDTO.setAuditoria(AuditoriaConvert.createDTO(fichaArbitralJPA.getAuditoria()) );
		objetoDTO.setEstadoFicha(HistorialEstadoConvert.createHistEstadoActivoDTO(fichaArbitralJPA.getListaHistorialEstado()));
		return objetoDTO;
	}
	
	

	public static FichaArbitralDTO  createDTO(Persona personaJPA,FichaArbitral fichaArbitralJPA){

		FichaArbitralDTO objetoDTO= new FichaArbitralDTO();

		objetoDTO.setIdFicha(fichaArbitralJPA.getIdFicha());
		objetoDTO.setNumFicha(fichaArbitralJPA.getNumFicha());
		objetoDTO.setTipoFicha(fichaArbitralJPA.getTipoFicha());
		objetoDTO.setIdEstadoFicha(fichaArbitralJPA.getIdEstadoFicha() );
		objetoDTO.setIndModalidadArbitro(fichaArbitralJPA.getIndModalidadArbitro() );
		objetoDTO.setFechaModalidad(fichaArbitralJPA.getFechaModalidad() );
		//Transformo el JPA de Persona a un DTO
		objetoDTO.setIdPersona(fichaArbitralJPA.getPersona().getIdPersona() );
		objetoDTO.setPersona(PersonaConvert.createDTO(personaJPA));
		
		objetoDTO.setEstado(fichaArbitralJPA.getEstado());
		objetoDTO.setAuditoria(AuditoriaConvert.createDTO(fichaArbitralJPA.getAuditoria()) );
				
		return objetoDTO;
	}

}
